#ifndef FORM_YB_JCMLXZ_H
#define FORM_YB_JCMLXZ_H

#include "pub_sqthread.h"
#include "pub_pop_delay.h"

#include <QWidget>
#include <QSqlQuery>
#include <QSqlError>
//#include "threadyb.h"
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QNetworkInterface>
#include <QNetworkRequest>
#include <QJsonObject>
#include <QTimer>
#include <QByteArray>
#include <QPointer>

namespace Ui {
class Form_yb_jcmlxz;
}

class Form_yb_jcmlxz : public QWidget
{
    Q_OBJECT

public:
    explicit Form_yb_jcmlxz(QWidget *parent = nullptr);
    ~Form_yb_jcmlxz();

    //bool download(QString);//执行下载操作

    //bool saveFile(QString file_qury_no, QString jydm);

    bool validSave( QString);

    //bool importData(QString);
    bool importText(QString, QString, QString);
    QString removeSpecialChar(QString s);

public slots:
    void onSqlFinished();

signals:

    void destroyW(QString);

private slots:
    void closeEvent(QCloseEvent *event);
    void on_pbExit_clicked();
    void on_pbDownload_clicked();
    void on_pbImport_clicked();
    void on_pbQuery_clicked();
    void onTimeOut();
    void onTime0Out();
    void onTime1Out();
    void threadStatusChange(QString);

    void on_pbSimple_clicked();

    void downMode1(QString busi_code);  //  逐行分页下载完整目录
    void downMode2(QString busi_code);  //  逐行不分页
    void downMode3(QString busi_code);  //  文本文件方式下载
    void downMode4(QString busi_code);  //  逐行分页下载指定目录

    void down1901();    //字典表

    void on_cbbList_currentIndexChanged(int index);

    void on_pb_update_icpc_clicked();

    void on_pb_check_price_clicked();

    void threadMsg(QString);

    void on_pb_invalid_check_clicked();

    bool status_check_invalid_data();

private:

    Ui::Form_yb_jcmlxz *ui;
    QSqlQuery *qro, *qrot;
    QSqlQuery *qrm, *qrmt;
    QString sq;

    QTimer *tm;
    QTimer *tm0;
    QTimer *tm1;

    int downloadDelay;

    QNetworkRequest request;
    QNetworkAccessManager manager;
    QNetworkReply * rpl ;

    //volatile bool businessFinish;    //医保交易完成标志
    bool businessSuccess;       //医保交易成功标志
    //QString jydm; //当前交易号
    QString currentMsgid;

    QString curStatus; //

    //int pageSize;   //每页行数
    //int pages;  //页数
    bool lastPage;  //是否最后一页
    bool sqlError;  //保存数据过程发生错误
    bool noValueReturn; //下载交易返回无结果

    bool hasZip;    //zip 库存在

    //QString startDate;  //开始日期
    //QString ver; //当前下载版本
    //QString lastOperDate;   //最后一次下载日期,1312等交易使用
    //QJsonObject retObj; //交易返回值

    //QString ver_new;    //新下载的数据版本
    QString ver_last;   //最后一次下载的数据版本
    QString ver_mode;    //版本模式，
    QString down_mode;   //下载模式
    QStringList jydmR; //交易代码及相关属性
    //QString jydm; //当前交易代码

    int endrows;
    int nowrows;

    QString downloadPath;
    sqThread * sqlThread;
    Pub_pop_delay * dlgDelay;
    QStringList sqlMsg;

};

#endif // FORM_YB_JCMLXZ_H
